﻿using Zwt.System.Model;

namespace Zwt.System.Interfaces.IService
{
    public interface ISysUserRelationService : IBaseService<Sys_UserRelation>
    {

        #region CustomInterface 
        /// <summary>
        /// 获取用户拥有公司
        /// </summary>
        /// <param name="userSession"></param>
        /// <param name="useCache"></param>
        /// <param name="cacheSecond"></param>
        /// <returns></returns>
        List<Base_Company> GetUserCompany(UserSessionVM userSession, bool useCache = false, int cacheSecond = 3600);

        /// <summary>
        /// 获取用户拥有工厂
        /// </summary>
        /// <param name="userSession"></param>
        /// <param name="useCache"></param>
        /// <param name="cacheSecond"></param>
        /// <returns></returns>
        List<Base_Factory> GetUserFactory(UserSessionVM userSession, bool useCache = false, int cacheSecond = 3600);

        /// <summary>
        /// 获取用户拥有车间
        /// </summary>
        /// <param name="userSession"></param>
        /// <param name="useCache"></param>
        /// <param name="cacheSecond"></param>
        /// <returns></returns>
        List<Base_WorkShop> GetUserWorkShop(UserSessionVM userSession, bool useCache = false, int cacheSecond = 3600);

        /// <summary>
        /// 获取用户拥有工序
        /// </summary>
        /// <param name="userSession"></param>
        /// <param name="useCache"></param>
        /// <param name="cacheSecond"></param>
        /// <returns></returns>
        List<Base_ProductProcess> GetUserProductProcess(UserSessionVM userSession, bool useCache = false, int cacheSecond = 3600);

        /// <summary>
        /// 获取用户拥有生产线
        /// </summary>
        /// <param name="userSession"></param>
        /// <param name="useCache"></param>
        /// <param name="cacheSecond"></param>
        /// <returns></returns>
        List<Base_ProductLine> GetUserProductLine(UserSessionVM userSession, bool useCache = false, int cacheSecond = 3600);
        #endregion

    }
}
